home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1997 April
/
EnigmA AMIGA RUN 17 (1997)(G.R. Edizioni)(IT)[!][issue 1997-04][EAR-CD].iso
/
EARCD
/
comm
/
mail
/
YamNet.lha
/
rexxtra12.lha
/
rexx
/
Hist.rexx
< prev
next >
Wrap
OS/2 REXX Batch file
|
1990-03-18
|
3KB
|
95 lines
/* Hist.rexx */
/*
Format
HIST [SAVE <name>] [LOAD <name>] [NOCLEAR]
[ORDER] [PERM [SEARCH <pattern>]
Save and/or recall the history buffer. ORDER places the history
buffer in alphabetical order and removes duplicates. PERM
recalls the permanent history file. SEARCH searches the
history buffer for a pattern.
*/
signal on break_c
call addlib 'rexxextra.library',-20,-30,0
facility = 'Hist'
retcode = 0
histfile = 'dat:.History'
permfile = 'Perm'
cmd = ''
template = "SAVE/K,LOAD/K,SEARCH/K,NOCLEAR/S,ORDER/S,PERM/S"
dtemplate = "SAVE/K,LOAD/K,NOCLEAR/S,ORDER/S,PERM/S,SEARCH/K"
args. = ''
parse arg g_c
do while g_c='?'
options prompt dtemplate': ' /* this template is */
parse pull g_c /* displayed to the user */
if g_c='?' then do
g_s=sourceline(3)
if pos('/*',g_s)=0 then break; if pos('*/',g_s)>0 then break
say
g_s=sourceline(4)
do i=5 while pos('*/',g_s)=0; say g_s; g_s=sourceline(i); end
say
end
end
interpret Cparse(g_c,template,'args')
if args.ERRCODE > 1 then do; say facility'-E-BADARGS,' args.ERRTEXT; exit 5; end
swflags = ''
if args.NOCLEAR then swflags = 'NOCLEAR'
if (args.SAVE ~= '') & (args.LOAD ~= '') then do
shistfile = fparse(pragma('D'),args.SAVE,histfile)
lhistfile = fparse(pragma('D'),args.LOAD,histfile)
if ~exists(lhistfile) then say lhistfile 'does not exist.'
else do
if exists(shistfile) then call Dump shistfile
'SwapHistory SAVE' shistfile 'LOAD' lhistfile swflags
end
end
if args.SAVE ~= '' then do
histfile = fparse(pragma('D'),args.SAVE,histfile)
if exists(histfile) then call Dump histfile
'History >'histfile
end
if args.LOAD ~= '' then do
histfile = fparse(pragma('D'),args.LOAD,histfile)
if ~exists(histfile) then say histfile 'does not exist.'
else 'SwapHistory LOAD' histfile swflags
end
if args.ORDER then do
histfile = fparse(pragma('D'),'Hist-Temp',histfile)
if exists(histfile) then call Dump histfile
'History | Sort | NoDuplicates >'histfile
'SwapHistory LOAD' histfile swflags
end
if args.PERM then do
call Hist 'LOAD 'permfile swflags
end
if args.SEARCH ~= '' then do
'History | Search STDIN nonum quick' args.SEARCH
end
GetOut:
exit retcode
break_c:
break_d:
break_e:
break_f:
say facility'-E-BREAK, Control-C interrupt'
exit 20
failure:
say facility'-E-FAIL, Line:' sigl', Error:' rc; retcode = rc; signal GetOut
syntax:
say facility'-E-SYNTAX, Line:' sigl', Error:' rc; retcode = rc; signal GetOut
error:
say facility'-E-ERROR, Line:' sigl', Error:' rc; retcode = rc; signal GetOut